package com.chzu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chzu.pojo.SysUser;
import com.chzu.pojo.vo.LoginVo;
import com.chzu.result.JsonResult;
import com.chzu.result.QueryInfo;
import com.github.pagehelper.Page;

/**
 * @Author lz
 * @Version 1.0
 * @Company 滁州大健康与养老产业研究院
 * @ClassName SysUserService
 * @Description service层
 * @Date 2022/01/27 14:34
 */
public interface SysUserService extends IService<SysUser> {



    /**
     * 登录接口
     * @param loginVo 账号和密码
     * @return token
     */
    JsonResult<Object> login(LoginVo loginVo);

    /**
     *  根据用户信息查询用户
     * @param username 用户名
     * @return
     */
    SysUser findByUsername(String username);


    /**
     * 微信小程序登录
     * @param openid 小程序的唯一标识
     * @return 结果
     */
    JsonResult<Object> miniLogin(String openid);

    /**
     * 根据openid更新用户信息
     * @param user 用户对象
     * @return 受影响的行数
     */
    JsonResult<Object> updateInfo(SysUser user);

    /**
     * 判断用户是否存在
     * @param value 用户标识
     * @return 结果
     */
    boolean isExistenceUser(String value);

    /**
     * 微信小程序登录
     * @param openId 小程序唯一标识
     * @return 受影响的行数
     */
    int insertWxUser(String openId);

    /**
     *  根据用户标识为用户分配角色
     * @param value 用户标识
     * @return 受影响行数
     */
    int assignRoles(String value);

    /**
     * 分页查询用户信息
     * @param queryInfo
     * @return 分页数据
     */
    JsonResult<Object> findPage(QueryInfo queryInfo);

    /**
     * 添加用户信息
     * @param user 用户
     */
    JsonResult<Object> insertUser(SysUser user);

    /**
     *  修改用户信息
     * @param user 用户
     */
    JsonResult<Object> updateUser(SysUser user);

    /**
     *  删除用户信息
     * @param id 用户id
     */
    JsonResult<Object> deleteUser(Integer id);

}
